package com.example.myapplication.viewmodelsharedcommondata.vd1;

import androidx.lifecycle.ViewModelStore;

import java.util.HashMap;

/**
 * 共享ViewModel
 *
 *     既然ShareModel已经实现了，根据其原理，共享ViewModel其实也快呼之欲出了，那就顺便实现了吧
 *     由于我们不能再使用Activity或Fragment提供的ViewModelStore，因此需要自己新建ViewModelStore并自己维护了
 *     自己维护的话则要创建一个存储自己ViewModelStore的存储器，暂且就叫ViewModelStoreStore吧，基本上与ViewModelStore是类似的
 *     ViewModelStoreStore
 * ————————————————
 * 版权声明：本文为CSDN博主「hijunmeng」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
 * 原文链接：https://blog.csdn.net/huweijian5/article/details/114575986
 */
public class ViewModelStoreStore {

    private final HashMap<String, ViewModelStore> mMap = new HashMap<>();

    final void put(String key, ViewModelStore viewModel) {
        mMap.put(key, viewModel);
    }

    final ViewModelStore get(String key) {
        return mMap.get(key);
    }

    final void remove(String key) {
        mMap.remove(key);
    }

    final int getSize() {
        return mMap.size();
    }

    public final void clear() {
        for (ViewModelStore vm : mMap.values()) {
            vm.clear();
        }
        mMap.clear();
    }

}
